寫單元測試請記得,不要自己起 DI framework 的 container 模擬 auto-wired 的依賴注入。
而是自己用 mock framework 產生假物件從依賴注入點注入。
要測一個情境,需要的注入相依物件過多,通常就是職責切分的問題。可能是要做的一件事情太大,可能是依賴的物件切得過細。
https://dotblogs.com.tw/hatelove/2017/01/23/bad-smells-discovered-by-unit-testing
透過橫切面設計(AOP)來達到「正交」式的組合設計,例如 decorator, CoR 責任鍊 等方式的組合,來做關注點跟職責分離。
很多人覺得測試很難寫,通常都是產品程式碼設計有問題,導致測試難寫難維護、難初始化。因為沒見過可以怎麼用更優雅的設計來完成同樣的需求,而總是用 procedure style 在寫流程,自然被搞死了。